const fs = require('fs')
const path = require('path')

// 目录创建之异步实现: 异步的API+递归

function mkDir(dirPath, cb) {
  let parts = dirPath.split('/')
  let index = 1

  function next() {
    // 递归结束条件
    if (index > parts.length) {
      return cb && cb()
    }

    // 正常的逻辑
    let current = parts.slice(0, index++).join('/')

    fs.access(current, (err) => {
      if (err) {
        // mkdir接受callback方法, 执行下一次
        fs.mkdir(current, next)
      } else {
        next()
      }
    })
  }
  next()
}

mkDir('a/b/c', () => {
  console.info('操作成功')
})
